import { e, ei } from "app/tool/Enum";

export const KeyCode = e({
    DOM_VK_CANCEL: ei(0x03, `Cancel key.`),
    DOM_VK_HELP: ei(0x06, `Help key.`),
    DOM_VK_BACK_SPACE: ei(0x08, `Backspace key.`),
    DOM_VK_TAB: ei(0x09, `Tab key.`),
    DOM_VK_CLEAR: ei(0x0C, `5 key on Numpad when NumLock is unlocked. Or on Mac, clear key which is positioned at NumLock key.`),
    DOM_VK_RETURN: ei(0x0D, `Return/enter key on the main keyboard.`),
    DOM_VK_ENTER: ei(0x0E, `Reserved, but not used. 已弃用 (Dropped, see Firefox bug 969247.)`),
    DOM_VK_SHIFT: ei(0x10, `Shift key.`),
    DOM_VK_CONTROL: ei(0x11, `Control key.`),
    DOM_VK_ALT: ei(0x12, `Alt (Option on Mac) key.`),
    DOM_VK_PAUSE: ei(0x13, `Pause key.`),
    DOM_VK_CAPS_LOCK: ei(0x14, `Caps lock.`),
    DOM_VK_KANA: ei(0x15, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_HANGUL: ei(0x15, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_EISU: ei(0x16, `英数 key on Japanese Mac keyboard.`),
    DOM_VK_JUNJA: ei(0x17, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_FINAL: ei(0x18, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_HANJA: ei(0x19, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_KANJI: ei(0x19, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_ESCAPE: ei(0x1B, `Escape key.`),
    DOM_VK_CONVERT: ei(0x1C, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_NONCONVERT: ei(0x1D, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_ACCEPT: ei(0x1E, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_MODECHANGE: ei(0x1F, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_SPACE: ei(0x20, `Space bar.`),
    DOM_VK_PAGE_UP: ei(0x21, `Page Up key.`),
    DOM_VK_PAGE_DOWN: ei(0x22, `Page Down key.`),
    DOM_VK_END: ei(0x23, `End key.`),
    DOM_VK_HOME: ei(0x24, `Home key.`),
    DOM_VK_LEFT: ei(0x25, `Left arrow.`),
    DOM_VK_UP: ei(0x26, `Up arrow.`),
    DOM_VK_RIGHT: ei(0x27, `Right arrow.`),
    DOM_VK_DOWN: ei(0x28, `Down arrow.`),
    DOM_VK_SELECT: ei(0x29, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_PRINT: ei(0x2A, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_EXECUTE: ei(0x2B, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_PRINTSCREEN: ei(0x2C, `Print Screen key.`),
    DOM_VK_INSERT: ei(0x2D, `Ins(ert) key.`),
    DOM_VK_DELETE: ei(0x2E, `Del(ete) key.`),
    DOM_VK_0: ei(0x30, `0 key in standard key location.`),
    DOM_VK_1: ei(0x31, `1 key in standard key location.`),
    DOM_VK_2: ei(0x32, `2 key in standard key location.`),
    DOM_VK_3: ei(0x33, `3 key in standard key location.`),
    DOM_VK_4: ei(0x34, `4 key in standard key location.`),
    DOM_VK_5: ei(0x35, `5 key in standard key location.`),
    DOM_VK_6: ei(0x36, `6 key in standard key location.`),
    DOM_VK_7: ei(0x37, `7 key in standard key location.`),
    DOM_VK_8: ei(0x38, `8 key in standard key location.`),
    DOM_VK_9: ei(0x39, `9 key in standard key location.`),
    DOM_VK_COLON: ei(0x3A, `Colon (":") key.`),
    DOM_VK_SEMICOLON: ei(0x3B, `Semicolon (";") key.`),
    DOM_VK_LESS_THAN: ei(0x3C, `Less-than ("<") key.`),
    DOM_VK_EQUALS: ei(0x3D, `Equals ("=") key.`),
    DOM_VK_GREATER_THAN: ei(0x3E, `Greater-than (">") key.`),
    DOM_VK_QUESTION_MARK: ei(0x3F, `Question mark ("?") key.`),
    DOM_VK_AT: ei(0x40, `Atmark ("@") key.`),
    DOM_VK_A: ei(0x41, `A key.`),
    DOM_VK_B: ei(0x42, `B key.`),
    DOM_VK_C: ei(0x43, `C key.`),
    DOM_VK_D: ei(0x44, `D key.`),
    DOM_VK_E: ei(0x45, `E key.`),
    DOM_VK_F: ei(0x46, `F key.`),
    DOM_VK_G: ei(0x47, `G key.`),
    DOM_VK_H: ei(0x48, `H key.`),
    DOM_VK_I: ei(0x49, `I key.`),
    DOM_VK_J: ei(0x4A, `J key.`),
    DOM_VK_K: ei(0x4B, `K key.`),
    DOM_VK_L: ei(0x4C, `L key.`),
    DOM_VK_M: ei(0x4D, `M key.`),
    DOM_VK_N: ei(0x4E, `N key.`),
    DOM_VK_O: ei(0x4F, `O key.`),
    DOM_VK_P: ei(0x50, `P key.`),
    DOM_VK_Q: ei(0x51, `Q key.`),
    DOM_VK_R: ei(0x52, `R key.`),
    DOM_VK_S: ei(0x53, `S key.`),
    DOM_VK_T: ei(0x54, `T key.`),
    DOM_VK_U: ei(0x55, `U key.`),
    DOM_VK_V: ei(0x56, `V key.`),
    DOM_VK_W: ei(0x57, `W key.`),
    DOM_VK_X: ei(0x58, `X key.`),
    DOM_VK_Y: ei(0x59, `Y key.`),
    DOM_VK_Z: ei(0x5A, `Z key.`),
    DOM_VK_WIN: ei(0x5B, `Windows logo key on Windows. Or Super or Hyper key on Linux.`),
    DOM_VK_CONTEXT_MENU: ei(0x5D, `Opening context menu key.`),
    DOM_VK_SLEEP: ei(0x5F, `Linux support for this keycode was added in Gecko 4.0.`),
    DOM_VK_NUMPAD0: ei(0x60, `0 on the numeric keypad.`),
    DOM_VK_NUMPAD1: ei(0x61, `1 on the numeric keypad.`),
    DOM_VK_NUMPAD2: ei(0x62, `2 on the numeric keypad.`),
    DOM_VK_NUMPAD3: ei(0x63, `3 on the numeric keypad.`),
    DOM_VK_NUMPAD4: ei(0x64, `4 on the numeric keypad.`),
    DOM_VK_NUMPAD5: ei(0x65, `5 on the numeric keypad.`),
    DOM_VK_NUMPAD6: ei(0x66, `6 on the numeric keypad.`),
    DOM_VK_NUMPAD7: ei(0x67, `7 on the numeric keypad.`),
    DOM_VK_NUMPAD8: ei(0x68, `8 on the numeric keypad.`),
    DOM_VK_NUMPAD9: ei(0x69, `9 on the numeric keypad.`),
    DOM_VK_MULTIPLY: ei(0x6A, `* on the numeric keypad.`),
    DOM_VK_ADD: ei(0x6B, `+ on the numeric keypad.`),
    DOM_VK_SEPARATOR: ei(0x6C, ``),
    DOM_VK_SUBTRACT: ei(0x6D, `- on the numeric keypad.`),
    DOM_VK_DECIMAL: ei(0x6E, `Decimal point on the numeric keypad.`),
    DOM_VK_DIVIDE: ei(0x6F, `/ on the numeric keypad.`),
    DOM_VK_F1: ei(0x70, `F1 key.`),
    DOM_VK_F2: ei(0x71, `F2 key.`),
    DOM_VK_F3: ei(0x72, `F3 key.`),
    DOM_VK_F4: ei(0x73, `F4 key.`),
    DOM_VK_F5: ei(0x74, `F5 key.`),
    DOM_VK_F6: ei(0x75, `F6 key.`),
    DOM_VK_F7: ei(0x76, `F7 key.`),
    DOM_VK_F8: ei(0x77, `F8 key.`),
    DOM_VK_F9: ei(0x78, `F9 key.`),
    DOM_VK_F10: ei(0x79, `F10 key.`),
    DOM_VK_F11: ei(0x7A, `F11 key.`),
    DOM_VK_F12: ei(0x7B, `F12 key.`),
    DOM_VK_F13: ei(0x7C, `F13 key.`),
    DOM_VK_F14: ei(0x7D, `F14 key.`),
    DOM_VK_F15: ei(0x7E, `F15 key.`),
    DOM_VK_F16: ei(0x7F, `F16 key.`),
    DOM_VK_F17: ei(0x80, `F17 key.`),
    DOM_VK_F18: ei(0x81, `F18 key.`),
    DOM_VK_F19: ei(0x82, `F19 key.`),
    DOM_VK_F20: ei(0x83, `F20 key.`),
    DOM_VK_F21: ei(0x84, `F21 key.`),
    DOM_VK_F22: ei(0x85, `F22 key.`),
    DOM_VK_F23: ei(0x86, `F23 key.`),
    DOM_VK_F24: ei(0x87, `F24 key.`),
    DOM_VK_NUM_LOCK: ei(0x90, `Num Lock key.`),
    DOM_VK_SCROLL_LOCK: ei(0x91, `Scroll Lock key.`),
    DOM_VK_WIN_OEM_FJ_JISHO: ei(0x92, `An OEM specific key on Windows. This was used for "Dictionary" key on Fujitsu OASYS.`),
    DOM_VK_WIN_OEM_FJ_MASSHOU: ei(0x93, `An OEM specific key on Windows. This was used for "Unregister word" key on Fujitsu OASYS.`),
    DOM_VK_WIN_OEM_FJ_TOUROKU: ei(0x94, `An OEM specific key on Windows. This was used for "Register word" key on Fujitsu OASYS.`),
    DOM_VK_WIN_OEM_FJ_LOYA: ei(0x95, `An OEM specific key on Windows. This was used for "Left OYAYUBI" key on Fujitsu OASYS.`),
    DOM_VK_WIN_OEM_FJ_ROYA: ei(0x96, `An OEM specific key on Windows. This was used for "Right OYAYUBI" key on Fujitsu OASYS.`),
    DOM_VK_CIRCUMFLEX: ei(0xA0, `Circumflex ("^") key.`),
    DOM_VK_EXCLAMATION: ei(0xA1, `Exclamation ("!") key.`),
    DOM_VK_DOUBLE_QUOTE: ei(0xA3, `Double quote (""") key.`),
    DOM_VK_HASH: ei(0xA3, `Hash ("#") key.`),
    DOM_VK_DOLLAR: ei(0xA4, `Dollar sign ("$") key.`),
    DOM_VK_PERCENT: ei(0xA5, `Percent ("%") key.`),
    DOM_VK_AMPERSAND: ei(0xA6, `Ampersand ("&") key.`),
    DOM_VK_UNDERSCORE: ei(0xA7, `Underscore ("_") key.`),
    DOM_VK_OPEN_PAREN: ei(0xA8, `Open parenthesis ("(") key.`),
    DOM_VK_CLOSE_PAREN: ei(0xA9, `Close parenthesis (")") key.`),
    DOM_VK_ASTERISK: ei(0xAA, `Asterisk ("*") key.`),
    DOM_VK_PLUS: ei(0xAB, `Plus ("+") key.`),
    DOM_VK_PIPE: ei(0xAC, `Pipe ("|") key.`),
    DOM_VK_HYPHEN_MINUS: ei(0xAD, `Hyphen-US/docs/Minus ("-") key.`),
    DOM_VK_OPEN_CURLY_BRACKET: ei(0xAE, `Open curly bracket ("{") key.`),
    DOM_VK_CLOSE_CURLY_BRACKET: ei(0xAF, `Close curly bracket ("}") key.`),
    DOM_VK_TILDE: ei(0xB0, `Tilde ("~") key.`),
    DOM_VK_VOLUME_MUTE: ei(0xB5, `Audio mute key.`),
    DOM_VK_VOLUME_DOWN: ei(0xB6, `Audio volume down key`),
    DOM_VK_VOLUME_UP: ei(0xB7, `Audio volume up key`),
    DOM_VK_COMMA: ei(0xBC, `Comma (",") key.`),
    DOM_VK_PERIOD: ei(0xBE, `Period (".") key.`),
    DOM_VK_SLASH: ei(0xBF, `Slash ("/") key.`),
    DOM_VK_BACK_QUOTE: ei(0xC0, `Back tick ("\`") key.`),
    DOM_VK_OPEN_BRACKET: ei(0xDB, `Open square bracket ("[") key.`),
    DOM_VK_BACK_SLASH: ei(0xDC, `Back slash ("\") key.`),
    DOM_VK_CLOSE_BRACKET: ei(0xDD, `Close square bracket ("]") key.`),
    DOM_VK_QUOTE: ei(0xDE, `Quote (''') key.`),
    DOM_VK_META: ei(0xE0, `Meta key on Linux, Command key on Mac.`),
    DOM_VK_ALTGR: ei(0xE1, `AltGr key (Level 3 Shift key or Level 5 Shift key) on Linux.`),
    DOM_VK_WIN_ICO_HELP: ei(0xE3, `An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.`),
    DOM_VK_WIN_ICO_00: ei(0xE4, `An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.`),
    DOM_VK_WIN_ICO_CLEAR: ei(0xE6, `An OEM specific key on Windows. This is (was?) used for Olivetti ICO keyboard.`),
    DOM_VK_WIN_OEM_RESET: ei(0xE9, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_JUMP: ei(0xEA, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_PA1: ei(0xEB, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_PA2: ei(0xEC, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_PA3: ei(0xED, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_WSCTRL: ei(0xEE, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_CUSEL: ei(0xEF, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_ATTN: ei(0xF0, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_FINISH: ei(0xF1, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_COPY: ei(0xF2, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_AUTO: ei(0xF3, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_ENLW: ei(0xF4, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_WIN_OEM_BACKTAB: ei(0xF5, `An OEM specific key on Windows. This was used for Nokia/Ericsson's device.`),
    DOM_VK_ATTN: ei(0xF6, `Attn (Attention) key of IBM midrange computers, e.g., AS/400.`),
    DOM_VK_CRSEL: ei(0xF7, `CrSel (Cursor Selection) key of IBM 3270 keyboard layout.`),
    DOM_VK_EXSEL: ei(0xF8, `ExSel (Extend Selection) key of IBM 3270 keyboard layout.`),
    DOM_VK_EREOF: ei(0xF9, `Erase EOF key of IBM 3270 keyboard layout.`),
    DOM_VK_PLAY: ei(0xFA, `Play key of IBM 3270 keyboard layout.`),
    DOM_VK_ZOOM: ei(0xFB, `Zoom key.`),
    DOM_VK_PA1: ei(0xFD, `PA1 key of IBM 3270 keyboard layout.`),
    DOM_VK_WIN_OEM_CLEAR: ei(0xFE, `Clear key, but we're not sure the meaning difference from DOM_VK_CLEAR.`),

})